Last written page searching

ABSTRACT

An example method of the present disclosure includes, responsive to a loss of last written page information by a memory system, initiating a last written page search to determine last written page information of a memory device, where the last written page search is initiated via a command from a controller of the memory system to the memory device, responsive to receiving the command, performing the last written page search on the memory device, and providing the last written page information to the controller.

PRIORITY INFORMATION

This application is a continuation of U.S. application Ser. No.15/819,941, filed Nov. 21, 2017, the contents of which are incorporatedherein by reference.

TECHNICAL FIELD

The present disclosure relates generally to systems, such as memorysystems, and methods, and more particularly, to methods and apparatusinvolving last written page searching.

BACKGROUND

Memory devices are typically provided as internal, semiconductor,integrated circuits in computers or other electronic devices. There aremany different types of memory including volatile and non-volatilememory. Volatile memory can require power to maintain its data andincludes random-access memory (RAM), dynamic random access memory(DRAM), and synchronous dynamic random access memory (SDRAM), amongothers. Non-volatile memory can provide persistent data by retainingstored data when not powered and can include NAND flash memory, NORflash memory, read only memory (ROM), electrically erasable programmableROM (EEPROM), erasable programmable ROM (EPROM), and resistance variablememory such as phase change random access memory (PCRAM), resistiverandom access memory (RRAM), and magnetoresistive random access memory(MRAM), among others.

Memory devices can be combined to form a storage volume of a memorysystem, such as a solid-state drive (SSD). As an example, an SSD caninclude non-volatile memory (e.g., NAND flash memory and NOR flashmemory), and/or can include volatile memory (e.g., DRAM and SRAM), amongvarious other types of non-volatile and/or volatile memory.

An SSD can be used to replace hard disk drives as the main storagevolume for a computer, as the SSD can have advantages over hard drivesin terms of performance, size, weight, ruggedness, operating temperaturerange, and power consumption. For example, SSDs can have superiorperformance when compared to magnetic disk drives due to their lack ofmoving parts, which may avoid seek time, latency, and otherelectro-mechanical delays associated with magnetic disk drives.

In various memory systems, it can be beneficial to maintain certaininformation such that it can be retrieved when needed. However, it maybe difficult to obtain and/or access such information due to occurrenceof various events, which may be unexpected and/or unpredictable. Forinstance, loss of such information may result from a loss of power(e.g., an asynchronous power loss event). Some memory systems mayinclude a mechanism such as a hold up capacitance that can be used towrite such information to nonvolatile storage such that it is not lostdue to a power loss event. However, if the system does not include amechanism such as hold up capacitance, which may allow the informationto be retrieved from nonvolatile storage, the system may attempt todetermine such information at power up (e.g., as part of a “rebuild”process).

However, retrieving such information at power up can take time andresources, which can adversely affect system performance. For instance,determining such information at power up can increase the time-to-ready(TTR), which can be part of a product specification and can refer to thetime required before a memory system is ready to accept commands (e.g.,from a host).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an apparatus in the form of a computingsystem including at least one memory system in accordance a number ofembodiments of the present disclosure.

FIG. 2 is a block diagram of an apparatus in the form of a memory systemin accordance with a number of embodiments of the present disclosure.

FIG. 3 illustrates an example of a memory unit having groups of memorycells organized as a number of physical blocks in accordance with anumber of embodiments of the present disclosure.

FIG. 4 illustrates a diagram associated with programming memory cells inaccordance with a number of embodiments of the present disclosure

FIG. 5A illustrates an example page map associated with last writtenpage searching in accordance with a number of embodiments of the presentdisclosure.

FIG. 5B illustrates a table indicating erase status of physical pagescorresponding to the page map shown in FIG. 5A.

DETAILED DESCRIPTION

An example method of the present disclosure includes, responsive to aloss of last written page information by a memory system, initiating alast written page search to determine last written page information of amemory device, where the last written page search is initiated via acommand from a controller of the memory system to the memory device,responsive to receiving the command, performing the last written pagesearch on the memory device, and providing the last written pageinformation to the controller.

A number of embodiments of the present disclosure can provide benefits,such as reducing a TTR of a memory system and/or input/output (I/O)traffic within the memory system, as compared to prior approaches. Forinstance, a number of embodiments can perform a last written page (LWP)search internal to memory devices coupled to a system controller, asopposed to by using the system controller itself.

For example, some prior approaches include the system controllerexecuting a process to determine the last written page information thatcan include performing a search of the blocks in the memory for alocation of the last written physical page. The system controller mayperform the search while the system is powering back up during the TTR,for example. The search may include the system controller issuing a readcommand for each physical page in the memory block, receiving data fromeach physical page in response to each read command, and determiningwhether the physical page is erased or programmed and whether the pageis fully or partially programmed in the event the physical page includesmultilevel memory cells (MLCs) programmed using multiple passes. In someexamples, the system controller may include a page table thatfacilitates determining the last written page based on the receiveddata. Alternatively, in the absence of a page table, the systemcontroller might search the memory in the logical domain that caninvolve more reads when compared to reading physical pages, in that aphysical page can include multiple logical pages.

A number of embodiments of the present disclosure include sending asingle command (e.g., in parallel) from a system controller to one ormore memory devices to initiate a LWP search, and results in a responsefrom the memory devices providing the system controller with LWPinformation. Performing the LWP search internal to the memory devicescan reduce I/O traffic (e.g., between the system controller and memorydevices) by avoiding sending multiple commands (e.g., read commands)from the controller to the memory devices to perform the LWP search andby avoiding sending the corresponding multiple responses (e.g., readpage data) back to the system controller.

In the following detailed description of the present disclosure,reference is made to the accompanying drawings that form a part hereof,and in which is shown by way of illustration how a number of embodimentsof the disclosure may be practiced. These embodiments are described insufficient detail to enable those of ordinary skill in the art topractice the embodiments of this disclosure, and it is to be understoodthat other embodiments may be utilized and that process, electrical,and/or structural changes may be made without departing from the scopeof the present disclosure.

As used herein, “a number of” something can refer to one or more suchthings. For example, a number of memory devices can refer to one or morememory devices. Additionally, the designators “N”, “B”, “R”, and “S” asused herein, particularly with respect to reference numerals in thedrawings, indicates that a number of the particular feature sodesignated can be included with a number of embodiments of the presentdisclosure.

The figures herein follow a numbering convention in which the firstdigit or digits correspond to the drawing figure number and theremaining digits identify an element or component in the drawing.Similar elements or components between different figures may beidentified by the use of similar digits. For example, 104 may referenceelement “04” in FIG. 1, and a similar element may be referenced as 204in FIG. 2. As will be appreciated, elements shown in the variousembodiments herein can be added, exchanged, and/or eliminated so as toprovide a number of additional embodiments of the present disclosure. Inaddition, as will be appreciated, the proportion and the relative scaleof the elements provided in the figures are intended to illustrate theembodiments of the present disclosure, and should not be taken in alimiting sense.

FIG. 1 is a block diagram of an apparatus in the form of a computingsystem 100, including at least one memory system 104, in accordance anumber of embodiments of the present disclosure. As used herein, amemory system 104, a system controller (e.g., 215), a memory device(e.g., 210), or a device controller (e.g., 225) might also be separatelyconsidered an “apparatus.”

Computing system 100 includes a memory system 104 coupled to a host 102through an interface 106. As used herein, “coupled to” generally refersto a connection between components, which may be an indirectcommunicative connection or direct communicative connection (e.g.,without intervening components), whether wired or wireless, includingconnections such as, electrical, optical, magnetic, etc. The memorysystem 104 can be a solid-state storage appliance implemented using anumber of SSDs, for example. As described further in association withFIG. 2, the system 104 can include a system controller (e.g., 215)coupled to a memory (e.g., a number of memory devices 210-1 to 210-N)via a suitable memory interface (e.g., 208).

Example hosts 102 can include laptop computers, personal computers,digital cameras, digital recording and playback devices, mobiletelephones, PDAs (personal digital assistants), memory card readers,interface hubs, sensors, and Internet-of-Things (IoT) enabled devices,among other host systems. The interface 106 can include a serialadvanced technology attachment (SATA), peripheral component interconnectexpress (PCIe), or a universal serial bus (USB), among other connectorsand interfaces. In general, however, host interface 106 can provide aninterface for passing control, address, data, and other signals betweenthe memory system 104 and the host 102.

Host 102 can include a number of processors 105 (e.g., parallelprocessors, co-processors, etc.) coupled to a memory and bus control107. The processor 105 can be a number of microprocessors, or some othertype of controlling circuitry, such as a number of application-specificintegrated circuits (ASICs), for example. Other components of thecomputing system 100 may also have processors. The memory and buscontrol 107 can have memory and/or other components coupled thereto. Inthis example, memory and bus control 107 is coupled to a dynamic randomaccess memory (DRAM) 111, a graphic user interface 118, and a peripheraland bus control 109. In this example, peripheral and bus control 109 iscoupled to a flash drive 119 via a universal serial bus (USB) interface,a non-volatile memory host control interface (NVMHCI) flash memory 117,and the memory system 104. The memory system 104 can be used in additionto, or in lieu of, a hard disk drive (HDD) in a number of differentcomputing systems. The computing system 100 illustrated in FIG. 1 is oneexample of such a system; however, embodiments of the present disclosureare not limited to the configuration shown in FIG. 1. The memory system104 can implement LWP searching as described further herein.

FIG. 2 is a block diagram of an apparatus in the form of a memory system204 in accordance with a number of embodiments of the presentdisclosure. As one example, the memory system 204 can be a solid-statedrive (SSD). The memory system 204 includes a memory system controller215 (e.g., memory control circuitry, firmware, and/or software) coupledto a memory (e.g., a number of memory devices 210-1 to 210-N) via a bus220. The memory devices 210-1 to 210-N may be referred to collectivelyas memory devices 210 or as memory 210 and may be configured to performlast written page searches in accordance with a number of embodiments ofthe present disclosure.

The system controller 215 includes a host interface 206 forcommunication with a host, such as host 102 described in FIG. 1, and adevice interface 208, such as a memory interface, for communication withthe memory devices 210 via a bus 220. The bus 220 can send/receivevarious signals (e.g., data signals, control signals, or address signalsor a combination thereof) between the memory devices 210 and the systemcontroller 215.

Although the example illustrated in FIG. 2 includes a single bus 220,the memory system 204 can include a separate data bus (DQ bus), controlbus, and address bus. The bus 220 can have various types of busstructures including, but not limited to, bus structures related to OpenNAND Flash Interface (ONFI), Compact Flash Interface, Multimedia Card(MMC), Secure Digital (SD), CE-ATA, Industrial Standard Architecture(ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA),Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), PeripheralComponent Interconnect (PCI), Card Bus, Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), Firewire (IEEE 1394), and SmallComputer Systems Interface (SCSI). The system controller 215 can beconfigured to support various data interface types associated with thememory devices 210 (e.g., NV-DDR, NV-DDR2, NV-DDR3, etc.).

The system controller 215 includes a translation component 216, whichcan be a flash translation layer (FTL), for example, associated withlogical to physical address translation between the host and memory 210.For instance, the translation component 216 may include a mapping tableof logical block addresses (LBAs) to physical block addresses (PBAs).Although not shown in FIG. 2, system controller 215 might also includean error detection and/or correction component, a wear levelingcomponent, and/or a garbage collection component, among various othercomponents implemented in hardware, firmware, software, or anycombination thereof and associated with management of memory 210.

As illustrated in FIG. 2, the memory devices 210 can include a number ofmemory units 212-1, 212-2, 212-3, and 212-4, which may be referred tocollectively as memory units 212 and which provide a storage volume forthe memory system 204. The memory units 212 can be dies or chips, whichcan be referred to as logical units (LUNs). For example, the memorydevices 210 can be multi-chip packages (MCPs) that each include a numberof dies 212. The dies 212 can be, for example, NAND dies comprising anumber of arrays of NAND flash memory cells and associated peripheralcircuitry (e.g., write circuitry, read circuitry, I/O circuitry,buffers, etc.).

As described further in association with FIGS. 3 and 4, the arrays canbe NAND flash arrays comprising single level cells (SLCs) configured tostore a single data unit (e.g., one bit), and/or multilevel cells (MLCs)configured to store more than one data unit. Additionally, the cells canbe programmable via various different programming processes, which candepend on the quantity of data units stored per cell; however, cellsconfigured to store a particular quantity of data units (e.g., 2 bits, 3bits, 4 bits, etc.) per cell can be programmable via differentprogramming processes. For example, a 3-bit MLC, which may be referredto as a three level cell (TLC) might be programmable via a two-passprogramming process (e.g., a 4-8 process in which a first programmingpass places the threshold voltage of the cells from an erase state intoone of four distributions based on a lower page and middle page datastate and in which a second programming pass places the thresholdvoltage of the cells from the one of four distributions into one ofeight distributions based on the upper page data state), or a three-passprogramming process (e.g., a 2-4-8 process). In some examples, atwo-pass programming process may include a 2-4 process in which a firstprogramming pass places the threshold voltage of the cells from an erasestate into one of two distributions based on a lower page data state andin which a second programming pass places the threshold voltage of thecells from the one of two distributions into one of eight distributionsbased on a middle and an upper page data state.

Embodiments of the present disclosure are not limited to the exampleshown in FIG. 2. For example, memory systems in accordance withembodiments of the present disclosure can include more or fewer thanfour memory units (e.g., die) 212 per memory device (e.g., MCP) 210 andare not limited to a particular memory array architecture (e.g., NANDflash, NOR flash, DRAM, PCM, etc.). Also, although one controller 225 isshown per device 210, embodiments can include a controller per memoryunit 212 (e.g., one controller per NAND die).

The memory devices 210 of system 204 include an internal devicecontroller 225 configured to control operations (e.g., read, program,erase, etc.) performed on the memory units 212 (e.g., responsive tocommands from system controller 215 and/or from a host via systemcontroller 215). The controllers 225 are local to the memory devices 210and can communicate with the external system controller 215 via bus 220.In some examples, system controller 215 may be referred to as anexternal controller, in that it is external to memory 210.

As shown in FIG. 2, the internal device controllers 225 includeinternally stored page map information 231 (e.g., that may be includedin page map 531 in FIG. 5A) and last written page (LWP) information 235.As an example, page map information 231 and the last information 235 canbe stored (e.g., as tables) in memory located on controller 225 and/orin the arrays of memory units 212. In some examples, system controller215 might maintain a “shadow” copy of the page map.

As an example, the page map information 231 can indicate a programmingorder of physical pages within blocks. The programming order can includephysical page numbers. The last written page information 235 may includethe physical page address (e.g., page number) of the last written pageand a completion status, such as the state, of the last written physicalpage (e.g., whether the page belongs to a group of partially programmedcells, or whether the page is fully programmed). For example, for twopass programming of a TLC, the identifier may include a state resultingfrom a particular programming pass, such as a 2-state or a 4-state as aresult of the first programming pass or an 8-state as a result of thesecond programming pass.

During operation, system controller 215 reads from and writes to memorydevices 210 and keeps track of last written page information (e.g., sothat system controller 215 knows which page to write to in a subsequentwrite. For example, the last written page information can include thelocations of the last written physical pages in blocks of the memorydevices 210. However, the last written page information can get lost bysystem 204 due to an asynchronous loss of power, for example.

In various previous systems, the system controller would attempt todetermine (e.g., recover) the last written page information duringre-powerup of the system (e.g., prior to indicating to the host that theSSD is ready to receive commands). However, in various previous systems,determining the LWP information (e.g., LWP and status) would involveproviding multiple read commands to the memory devices 210 (e.g., viabus 220) and receiving the corresponding multiple responses from thedevices 210, which would include respective pages of data. Such LWPsearching results in a relatively high amount of I/O traffic between thememory devices and the system controller 215, and can result inincreased TTRs. Even if the system controller 215 maintained a copy ofthe page table, performing a LWP search would involve significant I/Otraffic (e.g., read commands and corresponding responses across bus220).

In various embodiments, each of the memory devices 210-1 to 210-N isconfigured perform its own LWP search. For example, system controller215 may send a same command to each of the memory devices 210 (e.g., toinitiate concurrent LWP searches) responsive to a loss of last writtenpage information by system 204. The command sent to the memory devices210 to initiate the LWP searching local to the memory devices may bereferred to as a LWP search command and may comprise a a single readcommand sequence. For example, during re-powerup, after an asynchronousloss of power, controller 225 may send the LWP search command to thememory devices (e.g., responsive to the power loss event). Responsive toreceiving the LWP search command, a controller 225 (e.g., each ofcontrollers 225) may perform a last written page search in each of theblocks of the respective memory device 210 without further interventionfrom system controller 215. In some examples, each of the controllers225 may perform last written page search in the respective memorydevices concurrently (e.g., in parallel).

As used herein, multiple acts being performed concurrently refers toacts overlapping, at least in part, over a particular time period (e.g.,a TTR of the system).

After determining the last written pages, the respective controllers 225may output the last written page information, corresponding to the lastwritten pages on the respective memory devices 210, to system controller215. In some examples, as the LWP search command can include a setfeature enable command in addition to a read command sequence.Responsive to the LWP search command, controllers 225 may perform a lastwritten page search and output the requested LWP information to systemcontroller 215. As an example, the LWP information output from thecontrollers 225 may be written to a particular command address location,such as a feature address, which can then be read by system controller215. For instance, subsequent to receiving the LWP search command fromcontroller 225, no read data is sent to the controller 225 from a memorydevice 210 before providing the LWP information to the controller 225.

In some examples, the last written page search may include performing anerased page check on particular physical pages that may include readingthe particular pages to determine whether they are erased. For example,each physical block may include erase information (e.g., as part ofoverhead data for the page that may include error correction code (ECC)data), such as flag data (e.g., bits), that indicates whether thephysical page is erased. As an example, a bit value of zero may indicatethe page is not erased and a bit value of one may indicate the page iserased. For cases in which the physical pages are programmed usingmultiple passes, the physical page may include status information (e.g.,flag data), indicative of the state of programming (e.g., whether thepage is fully or partially programmed). As an example, a bit value ofzero may indicate the page is partially programmed and a bit value ofone may indicate the page is fully programmed. As described inconjunction with FIGS. 5A and 5B, the last written page search mayinclude performing a number of binary searches used to select theparticular pages to be read.

The memory devices 210 can be part of a single channel; however,embodiments are not so limited. For example, system controller 215 maybe coupled to a plurality of channels each comprising a number of memorydevices 210 (e.g., bus 220 may correspond to one or more parallelcommunication channels). In a number of embodiments, the channels canoperate independently such that pages searches described herein can beperformed concurrently by devices corresponding to multiple channelsand/or concurrently by devices within a single channel.

Providing the ability for each of the memory devices 210 to performtheir own last written page searches (e.g., in response to a singlecommand from system controller 215) and outputting the last written pageinformation at the completion of the searches to system controller 215without further intervention from the system controller 215 can reducethe TTR and I/O traffic compared to using the system controller toperform the last written pages by issuing numerous commands andreceiving information from each physical or logical page, as is done inprevious approaches. Moreover, the previous approaches may involveperforming the searches on and receiving the last written pageinformation from the memory devices coupled to the system controllerover a single channel (e.g., bus) serially. This, for example, canresult in large amounts of I/O traffic on the channel (e.g., resultingin congestion that could reduce throughput). Using each of the memorydevices 210 to perform their own last written page searches allows thesearches to be conducted in parallel by the respective memory devices210 coupled to the system controller over a single channel and canresult in reduced I/O traffic on the channel compared to the previousapproaches.

FIG. 3 illustrates an example of a memory unit 312 having groups ofmemory cells organized as a number of physical blocks 339-1 (BLOCK 1),339-2 (BLOCK 2), . . . , 339-B (BLOCK B), in accordance with a number ofembodiments of the present disclosure. The memory unit 312 can be amemory unit, such as memory units 212 described in FIG. 2. The memorycells of memory unit 312 can be, for example, non-volatile floating gateflash memory cells having a NAND architecture. However, embodiments ofthe present disclosure are not limited to a particular memory type.

The memory blocks 339-1 to 339-B can be referred to collectively asblocks 339 and can be operated as SLC and/or MLC cells, for instance. Asan example, the number of physical blocks in an array of memory unit 312may be 128 blocks, 512 blocks, or 1,024 blocks, but embodiments are notlimited to a particular number of physical blocks. In some examples, theblocks 339 may be arranged in a plurality of decks. As an example, oneor more “dummy” access lines (e.g., word lines) might separate the decksfrom each other.

In the example shown in FIG. 3, each physical block 339 includes memorycells which can be erased together as a unit (e.g., the cells in eachphysical block can be erased concurrently as an erase unit). As shown inFIG. 3, each physical block 339 comprises a number of physical rows340-1, 340-2, . . . , 340-R of memory cells that can each be coupled toa respective addressable access line. The number of rows in eachphysical block can be 32, 64, or 128, but embodiments are not limited toa particular number of rows, which can be referred to collectively asrows 340, per block 339.

Each row 340 can comprise a number of physical pages of cells that mayinclude erase information and status information, if applicable. Aphysical page of cells can refer to a number of memory cells that areprogrammed and/or read together (e.g., concurrently) or as a functionalgroup. In the embodiment shown in FIG. 3, each row 340 can comprise onephysical page of cells. However, embodiments of the present disclosureare not so limited. For instance, each row 340 can comprise multiplephysical pages of cells (e.g., an even page associated with cellscoupled to even-numbered bit lines, and an odd page associated withcells coupled to odd numbered bit lines). Additionally, as describedfurther in association with FIG. 4, for embodiments including multilevelcells, a physical page can store multiple logical pages of data witheach cell in a physical page contributing a bit toward a logical lowerpage, a bit toward a logical upper page, and one or more bits toward arespective number of logical intermediate pages.

In some examples, as described further in conjunction with FIG. 5A, amemory block may be arranged in a plurality of columns of pages, such asaddressable sub-blocks of pages. For example, each sub-block within ablock may be identified by an address, such as a sub-block address. Forexample, a physical page address may include (e.g., may be identifiedby) an access line address and a sub-block address.

In the example shown in FIG. 3, a physical page corresponding to a row340 can store a number of sectors 342-1, 342-2, . . . , 342-S of data(e.g., an amount of data corresponding to a host sector, such as 512bytes). The sectors 342 may comprise user data as well as overhead data,such as error correction code (ECC) data and logical block address (LBA)data. It is noted that other configurations for the physical blocks 339,rows 340, and sectors 342 are possible. For example, rows 340 can eachstore data corresponding to a single sector which can include, forexample, more or less than 512 bytes of data.

FIG. 4 illustrates a diagram associated with programming memory cells inaccordance with a number of embodiments of the present disclosure. Inthis example, the memory cells are TLCs each being programmable to oneof eight data states (e.g., L1 to L8) assigned a different respective3-bit bit pattern (e.g., 111, 011, 001, 101, 100, 000, 010, and 110). Ina number of embodiments, each of the bits in the 3-bit stored bitpatterns correspond to a different logical page of data. For instance,the least significant bit (LSB) (right most bit shown as boxed in FIG.4) can correspond to a first logical page of data (e.g., a lower page),the middle bit can correspond to a second logical page of data (e.g., amiddle page), and the most significant bit (MSB) (left most bit asindicated by a diamond symbol in FIG. 3) can correspond to a thirdlogical page of data (e.g., an upper page).

However, embodiments are not limited to multilevel memory cells storingthree bits of data. For instance, a number of embodiments can includememory cells configured to store more or fewer than three bits of dataand/or a fractional number of bits of data per cell, and embodiments arenot limited to the particular encoding assigned to the data states L1 toL8.

The diagram shown in FIG. 4 illustrates threshold voltage (Vt)distributions associated with programming memory cells (e.g., NAND flashcells) in accordance with a two-pass programming process (e.g., a 4-8two-pass programming process) that includes a first programming pass(PP_1) 427 by which the lower page and middle page (LP/MP) areprogrammed, and a second programming pass (PP_2) 429 by which the upperpage (UP) is programmed.

Threshold voltage (Vt) distribution 421 represents erased memory cells.The first programming pass 427 includes adjusting the Vt of the memorycells (e.g., via programming pulses applied to a selected word line) toone of four levels represented by Vt distributions 432-1, 432-2, 432-3,and 432-4. The voltage levels are represented by Vt distributions, whichcan reflect a statistical average Vt level of cells programmed to aparticular level. In this example, cells whose lower page is to store abit value of “1” (e.g., LP=1) and whose middle page is to store a bitvalue of “1” (e.g., MP=1) are programmed to distribution 432-1 duringthe first programming pass 427, cells whose lower page is to store a bitvalue of “1” (e.g., LP=1) and whose middle page is to store a bit valueof “0” (e.g., MP=0) are programmed to distribution 432-2 during pass427, cells whose lower page is to store a bit value of “0” (e.g., LP=0)and whose middle page is to store a bit value of “0” (e.g., MP=0) areprogrammed to distribution 432-3 during pass 427, and cells whose lowerpage is to store a bit value of “0” (e.g., LP=0) and whose middle pageis to store a bit value of “1” (e.g., MP=1) are programmed todistribution 432-4 during pass 427.

The second programming pass 429 includes adjusting the Vt of the memorycells (e.g., via programming pulses applied to a selected word line) toone of eight levels represented by Vt distributions 434-1 to 434-8,which correspond to data states L1 to L8, respectively, with each one ofdata states L1 to L8 indicating a different 3-bit stored bit pattern. Inthis example, cells programmed to data state L1 store data “111,” cellsprogrammed to data state L2 store data “011,” cells programmed to datastate L3 store data “001,” cells programmed to data state L4 store data“101,” cells programmed to data state L5 store data “100,” cellsprogrammed to data state L6 store data “000,” cells programmed to datastate L7 store data “010,” and cells programmed to data state L8 storedata “110.”

The diagram illustrated in FIG. 4 illustrates a number of read voltages490-0, 490-1, 490-2, 490-3, 490-4, 490-5, and 490-6 (referred togenerally as read voltages 490) associated with reading the bits of thethree respective stored pages. A number of read strobes (e.g., using anumber of the read voltages 490 applied to the selected word line) maybe required in association with a reading a particular page of data. Forinstance, in this example, the encoding is such that a single readstrobe (e.g., at read voltage 490-3) can be used to determine whetherthe lower page of the cell is a “0” or a “1” (e.g., a single Vtdetection operation using read voltage 490-3). Also, in this example,two read strobes must be performed in order to decode the middle page(e.g., one strobe at read voltage 490-1 and one strobe at read voltage490-5). In this example, the encoding is such that four read strobesmust be performed in order to decode the upper page (e.g., strobes atread voltages 490-0, 490-2, 490-4, and 490-6).

In some examples, memory cells of memory units, such as memory units 212shown in FIG. 2 can be configured as SLC or MLC cells. The MLCconfigurations can be 2-bit, 3-bit, or 4-bit configurations, forinstance. The page mapping (e.g., programming order of pages) can varybased on the particular MLC configuration. Additionally, the programmingprocesses corresponding to a particular MLC can vary. For example, a3-bit MLC configuration can be programmed in accordance with a one-pass,two-pass, or three-pass programming process. In some examples, if onlythe first programming pass 427 has been performed, the statusinformation in the corresponding physical page may indicate the physicalpage is partially programmed, and if the second programming pass 429 hasbeen performed, the status information may indicate the physical page isfully programmed.

FIG. 5A illustrates an example page map 531 associated with last writtenpage searching in accordance with a number of embodiments of the presentdisclosure. FIG. 5B illustrates a table indicating erase status ofphysical pages corresponding to the page map shown in FIG. 5A. The pagemap 531 can correspond to page map information 231 in the respectivememory devices 210 shown in FIG. 2, for example. In examples involving aplurality of decks per block, there may be a page map 531 for each ofthe plurality of decks.

In the example shown in FIG. 5A, the page map 531 is in the form of atable and corresponds to a memory in which a block of memory cellscomprises 6 sub-blocks with 11 word lines. As such, each block comprises66 physical pages. Each column 552-0 through 552-5 of the table 531corresponds to a respective sub-block (e.g., “SB0” through “SB5”) andeach row 550-0 through 550-10 of the table 531 corresponds to arespective word line (e.g., “WL0” through “WL10”). The entries withinthe table 531 indicate respective page numbers for the 66 physical pageswithin the block (numbered “0” through “65”). Accordingly, the table 531indicates the physical location (e.g., sub-block address and word lineaddress) of each physical page within the block. For example, page “0”corresponds to a physical page at word line WL0 within sub-block SB0,and page “65” corresponds to a physical page at word line WL10 withinsub-block SB5.

In the example of FIG. 5A, the word lines WL0 through WL10 can be commonto the sub-blocks SB0 through SB5. For example, pages “60” to “65” canall be coupled to a same word line (e.g., WL10). However, the 11 wordlines of the respective sub-blocks SB0 through SB5 may be different wordlines such that page “60” might be coupled to the 11^(th) word line(WL10) within sub-block SB0 and page “65” might be coupled to a separateword line within sub-block SB5 (e.g., the 11^(th) word line withinsub-block SB5).

Table 560 illustrates an example of erase status, at a particular pointin time, for the block described in FIG. 5A. For example, table 560indicates whether each of the 66 pages corresponding to table 531 iscurrently erased (e.g., indicated by “E”) or programmed, at leastpartially (e.g., indicated by “P”). The table 560 can represent theerase status of the block subsequent to an asynchronous power loss eventin which LWP information is lost by the memory system.

The below discussion describes performing a last written page search(e.g., using table 531) in accordance with embodiments of the presentdisclosure in order to determine which physical page of the 66 physicalpages of the block was the last physical page written as well as otherstatus information associated with the last written physical page. Theexample described below involves performing a number of binary searchesto determine the LWP. For example, a first binary search can beperformed to determine a particular last programmed word line, and asecond binary search can be performed to determine a particular lastprogrammed sub-block. As described below, each iteration of the binarysearch may include performing an erase page check, which can includeperforming a page read operation.

It will be appreciated that binary searches are known and that one ofordinary skill in the art will be familiar with how a binary search isperformed. Accordingly, a detailed explanation of how binary searchesmay be implemented is not provided. Further, it is noted that althoughthe example provided herein uses a binary search, embodiments of thepresent disclosure are not limited to a particular type of search todetermine LWP information.

A LWP search using the page map information shown in FIGS. 5A and 5B canbe initiated via a LWP search command initiated by a system controller(e.g., 215) responsive to a loss of LWP information of a system (e.g.,system 104). The LWP search command can be executed by one or morememory devices (e.g., 210-1 to 210-N) without further intervention fromthe system controller 215 (e.g., without providing subsequent commandssuch as page read commands to the memory devices 210). The search maycommence by performing an word line search (e.g., a binary search of theword lines WL0 through WL10) for a particular one of the sub-blocks(e.g., sub-block SB0). Since the of the physical pages of a block may beprogrammed sequentially (e.g., starting at page “0” and ending at page“66”), a binary word line search of one of the sub-blocks can besufficient to obtain the word line corresponding to the LWP. However, ifa memory device comprises multiple decks of sub-blocks, a separatebinary search of the word lines may be performed on a sub-block fromeach of the decks (e.g., to determine which deck includes the LWP).

The binary search of the word lines (e.g., of a selected sub-block suchas sub-block SB0) may include setting a start pointer to the first wordline (e.g., WL0) and an end pointer to the last word line (e.g., WL10).An erase check is performed on the page corresponding to the selectedsub-block (e.g., SB0) and to the word line corresponding to the startpointer (e.g., WL0), which is page “0” as shown in table 531. The erasecheck of page “0” includes reading the page, whose corresponding data(e.g., or metadata such as an erase state flag) indicates whether or notthe page is erased. In cases in which the pages of a block areprogrammed sequentially, a determination that the first word line (WL0)of the first sub-block (SB0) is erased can indicate that the block iserased (e.g., all pages of the block are erased).

If, as in this example, page “0” is determined to be programmed, asindicated by the “P” in table 560, then an erase page check is performedon the page corresponding to the selected sub-block (SB0) and to theword line corresponding to the end pointer (WL10), which is page “60” inthis case. If it is determined that page “60” is programmed, then it maybe the last written page. Accordingly, if page “60” is programmed, abinary search of the sub-blocks SB0 through SB5 may be performed todetermine which of the sub-blocks includes the last written page.

If, as in this example, page “60” is determined to be erased, asindicated by the “E” in table 560, then, in accordance with binarysearching, one of the start and end pointers is moved to remove half (orabout half) of the word lines from the next binary search iteration. Inthis example, the next iteration of the binary search involves movingthe start pointer from WL0 to WL5 (with the end pointer remaining atWL10), and performing an erase check on the page coupled to word lineWL5, which is page “30” as shown in table 531.

Since, in this example, page “30” is programmed, as indicated by the “P”in table 560, the start pointer remains at WL5 and the end pointer ismoved from WL10 to WL7 in accordance with the binary search process forthe next iteration. An erase check is then performed on the page that iscoupled to an word line WL7 (of sub-block SB0), which is page “42” asshown in table 531.

In this example, page “42” is determined to be erased, as indicated bythe “E” in table 560, and the start pointer may be updated from wordline WL5 to WL6. In this example, since page “30” (coupled to WL5) wasdetermined to programmed and page “42” (coupled to WL7) was determinedto be erased, an erase page check on page “36” (e.g., the page coupledto WL6) will determine whether page “30” or page “36” is the lastwritten page.

In this example, an erase page check on page “36” reveals that page “36”is programmed, as indicated by the “P” in table 560. Accordingly, page“36” is determined to be the last written page in the selected sub-block(e.g., SB0) and the binary search of the word lines concludes (e.g.,since the start pointer and end pointers have merged to within one wordline), and word line WL6 is determined to be the word line coupled tothe last written page of the block.

Responsive to determining the particular word line corresponding to thelast written page of a block (e.g., WL6 in this example), a subsequentbinary search of the sub-blocks SB0 through SB5 coupled to word line WL6can be performed to determine in which particular sub-block the lastwritten page of the block is located.

The binary search of sub-blocks SB0 to SB5 coupled to word line WL6 mayinclude setting a start pointer to the first sub-block (e.g., sub-blockSB0) and an end pointer to the last sub-block (e.g., sub-block 5). Anerase check may be performed on the page in sub-block 5 (e.g., page“41”). If, as in this example, page “41” is determined to be erased, asindicated by the “E” in table 560, then, in accordance with binarysearching, one of the start and end pointers is moved to remove half (orabout half) of the sub-blocks for the next binary search iteration. Inthis example, the next iteration of the binary search involves movingthe end pointer from sub-block SB5 to sub-block SB2 (with the startpointer remaining at sub-block SB0), and performing an erase check onthe page in sub-block SB2, which is page “38” as shown in table 531.

In this example, page “38” is determined to be erased, as indicated bythe “E” in table 560, and the start pointer may be updated fromsub-block SB0 to sub-block SB1. In this example, since page “36” insub-block SB0 (e.g., coupled to word line WL6) was determined to beprogrammed, and page “38” in sub-block 2 (e.g., coupled to word lineWL6) was determined to be erased, an erase page check on page “37” insub-block SB1 will determine whether page “36” or page “37” is the lastwritten page. In this example, an erase page check on page “37” revealsthat page “37” is programmed, as indicated by the “P” in table 560.Accordingly, page “37” is determined to be the last written page in theblock.

In examples in which the pages are programmed using a single pass, theaccess line address WL6 and the sub-block address SB1 of last writtenpage “37” are output to system controller 215 as last written pageinformation (e.g., identified by the feature address). In examples inwhich the pages are programmed using multiple passes, the statusinformation of last written page “37” is checked to determine whetherlast written page “37” is partially or fully programmed, and thisinformation is included with the last written page information.

In the various disclosed embodiments, the LWP searches are performedlocal to the memory devices coupled to the system controller withoutsystem controller interaction. The memory device performs an LWP searchinternally by itself and returns the result of the search (e.g. LWPinformation) to the system controller in response to receiving a commandoutput by the system controller in response to a power loss event. Thiscan provide benefits, such as reducing a TTR of the memory system and/orinput/output (I/O) traffic within the memory system compared to previousapproaches in which the system controller itself determines the LWPinformation externally to the memory device.

Although specific embodiments have been illustrated and describedherein, those of ordinary skill in the art will appreciate that anarrangement calculated to achieve the same results can be substitutedfor the specific embodiments shown. This disclosure is intended to coveradaptations or variations of a number of embodiments of the presentdisclosure. It is to be understood that the above description has beenmade in an illustrative fashion, and not a restrictive one. Combinationof the above embodiments, and other embodiments not specificallydescribed herein will be apparent to those of skill in the art uponreviewing the above description. The scope of a number of embodiments ofthe present disclosure includes other applications in which the abovestructures and methods are used. Therefore, the scope of a number ofembodiments of the present disclosure should be determined withreference to the appended claims, along with the full range ofequivalents to which such claims are entitled.

In the foregoing Detailed Description, some features are groupedtogether in a single embodiment for the purpose of streamlining thedisclosure. This method of disclosure is not to be interpreted asreflecting an intention that the disclosed embodiments of the presentdisclosure have to use more features than are expressly recited in eachclaim. Rather, as the following claims reflect, inventive subject matterlies in less than all features of a single disclosed embodiment. Thus,the following claims are hereby incorporated into the DetailedDescription, with each claim standing on its own as a separateembodiment.

1.-20. (canceled)
 21. A memory device, comprising: a plurality of memoryunits; and an internal controller coupled to the plurality of memoryunits and configured to: receive a command associated with a power lossevent; and responsive to receiving the command, perform a last writtenpage search to determine last written page information of the memorydevice; wherein performing the last written page search comprises:commencing the last written page search by performing a word line searchfor determining a particular word line using a binary search of wordlines for a particular one of a group of sub-blocks; wherein the binarysearch of the word lines includes setting a start pointer to a firstword line and an end pointer to a last word line and performing an erasecheck of the particular one of the group of sub-blocks; and responsiveto determining the particular word line corresponding to a last writtenpage of a block, performing a subsequent binary search of sub-blockscoupled to the particular word line to determine a particular sub-blockin which the last written page of the block is located.
 22. The memorydevice of claim 21, wherein the internal controller stores page mapinformation.
 23. The memory device of claim 21, wherein data stored inthe last written page comprises information which indicates whethermemory cells of the last written page are fully programmed.
 24. Thememory device of claim 21, wherein the internal controller is configuredto provide the determined last written page information of the memorydevice to a system controller external to the memory device.
 25. Thememory device of claim 21, wherein the last written page is configuredto store status information.
 26. The memory device of claim 21, whereinthe last written page information is configured to be read from thememory device via an external controller.
 27. The memory device of claim21, wherein the memory device is commonly coupled to a number ofadditional memory devices via a bus.
 28. The memory device of claim 21,wherein the plurality of memory units comprise respective memory dice.29. The memory device of claim 28, wherein the respective memory dicecomprise NAND memory arrays.
 30. An apparatus, comprising: a systemcontroller; a plurality of memory devices coupled to the systemcontroller, wherein at least one of the plurality of memory devicescomprises: a block of memory cells; and an internal controller coupledto the block and configured to, responsive to receiving a commandassociated with a loss of last written page information, determine alast written page of the block by: commencing a last written page searchby performing a word line search for determining a particular word lineusing a binary search of word lines for a particular one of a pluralityof sub-blocks of the block; wherein the binary search of the word linesincludes setting a start pointer to a first word line and an end pointerto a last word line and performing an erased page check of theparticular one of the plurality of sub-blocks; and responsive todetermining the particular word line corresponding to a last writtenpage of a block, performing a subsequent binary search of sub-blockscoupled to the particular word line to determine a particular sub-blockin which the last written page of the block is located.
 31. Theapparatus of claim 30, wherein each sub-block of the plurality ofsub-blocks comprises physical pages respectively coupled to differentones of a plurality of word lines;
 32. The apparatus of claim 30,wherein the internal controller is configured to provide the determinedlast written page information to the system controller.
 33. Theapparatus of claim 30, wherein the system controller is configured toread the determined last written page information from the at least onememory device.
 34. The apparatus of claim 30, wherein data stored in thelast written page comprises information which indicates whether memorycells of the last written page are fully programmed.
 35. The apparatusof claim 30, wherein the erased page check comprises reading an erasestatus from the particular one of the plurality of sub-blocks.
 36. Theapparatus of claim 30, wherein the last written page informationincludes a feature address.
 37. The apparatus of claim 30, wherein theat least one memory device maintains a page map that provides a physicalpage address for each of a plurality of combinations of an access lineaddress and a sub-block address.
 38. The apparatus of claim 30, whereinthe command is provided to the at least one memory device responsive toan asynchronous power loss event.
 39. A system, comprising: a controllercomprising a host interface and a memory device interface; and aplurality of memory devices coupled to the controller via a bus, whereineach one of the plurality of memory devices comprises an internalcontroller configured to, responsive to a loss of last written pageinformation by the system, initiate a last written page search todetermine last written page information of the plurality of memorydevices; wherein the last written page search comprises: performing aword line search for determining a particular word line using a binarysearch of word lines for a particular one of a group of sub-blocks;wherein the binary search of the word lines includes setting a startpointer to a first word line and an end pointer to a last word line andperforming an erase check of the particular one of the group ofsub-blocks; and responsive to determining the particular word linecorresponding to a last written page of a block, performing a subsequentbinary search of sub-blocks coupled to the particular word line todetermine a particular sub-block in which the last written page of theblock is located.
 40. The system of claim 39, wherein the last writtenpage search is performed concurrently by the plurality of memorydevices.